import numpy as np
import cv2 as cv
import imutils
import matplotlib.pyplot as plt

img = cv.imread('02.yuan.jpg')
plt.figure()  # 创建画布
plt.subplot(4, 2, 1)  # 要生成4行3列，这是第一个图plt.subplot('行','列','编号')
plt.imshow(img[:, :, ::-1])  # 实现RGB到BGR通道的转换  cv2把图片读取后是把图片读成BGR形式的，plt则是读成RGB形式
plt.title('原图')

# 图像平移
trans = imutils.translate(img, 10, 20)
plt.subplot(4, 2, 4)
plt.imshow(trans[:, :, ::-1])
plt.title('平移结果')

#########################################################################

# 图像缩放
resized = imutils.resize(img, width=50)  # 缩放图片宽度为50px
print('原图大小:', img.shape)
print('缩放大小:', resized.shape)
# plt.figure()
# plt.subplot(4, 3, 3)
# plt.imshow(img[:, :, ::-1])
# plt.imshow(cv.cvtColor(img, cv.COLOR_BGR2RGB))
# plt.title('原图')
# plt.axis('off')  # 坐标轴 关
plt.subplot(4, 2, 6)
plt.imshow(cv.cvtColor(resized, cv.COLOR_BGR2RGB))  # 将缩放的图片填充到坐标轴中
plt.title('缩放结果')
# plt.axis('off')

#########################################################################

# 图像旋转
rotated = imutils.rotate(img, 90)  # 逆时针旋转90度
rotated_round = imutils.rotate_bound(img, 90)  # 顺时针旋转90度
plt.subplot(4, 2, 7)
# plt.imshow(rotated[:, :, ::-1])
plt.imshow(imutils.opencv2matplotlib(rotated))
plt.title('逆时针旋转90度')
plt.subplot(4, 2, 8)
plt.imshow(rotated_round[:, :, ::-1])
plt.title('顺时针旋转90度')

#########################################################################

# # 骨架提取
# # 灰度化
# # gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
# gray = cv.cvtColor(resized, cv.COLOR_BGR2GRAY)
# print('grey')
# # 骨架提取
# skeleton = imutils.skeletonize(gray, (3, 3))  # 卡死
# # skeleton = gray
# print('skeleton')
# plt.subplot(1, 2, 1)
# plt.imshow(skeleton, cmap='gray')
# plt.title('骨架提取')

plt.show()
